home *** CD-ROM | disk | FTP | other *** search
-
- ; Unless declared otherwise all
- ; values are type short
- ; setjmp(array pointer) : set
- ; environment of 3 integers,
- ; returns 0
- ; array -> bp of calling function
- ; sp current
- ; address of setjmp return
- PUBLIC setjmp
- setjmp PROC NEAR
- ;
- mov bx,sp
- mov ax,ss:[bx]
- mov bx,ss:[bx+2]
- mov ss:[bx],bp
- mov ss:[bx+2],sp
- mov ss:[bx+4],ax
- xor ax,ax
- ret
- ;
- setjmp ENDP
-
- ; longjmp(array pointer, constant) :
- ; non local goto, returns constant
- PUBLIC longjmp
- longjmp PROC NEAR
- ;
- xor ax,ax
- mov bp,sp
- mov bx,[bp+2]
- mov ax,[bp+4]
- or ax,ax
- jne L1
- inc ax
- L1:
- mov bp,ss:[bx]
- mov sp,ss:[bx+2]
- mov cx,ss:[bx+4]
- mov bx,sp
- mov ss:[bx],cx
- ret
- ;
- longjmp ENDP
-
-
-
-